 /*	
 *				
 *					ISNW ---- It is a war.It is not warcraft!
 *
 *
 *					Author:					zhoukeli(haxixi_keli)
 *					Filename:				IAnimateMesh.h
 *					CreateTime:				2008/12/14
 *					ModifyTime:				2008/12/14
 *
 */

#ifndef __ISNW_I_ANIMATEMESH_H__
#define __ISNW_I_ANIMATEMESH_H__

#include "isnwTypes.h"
#include "IReferenceCounted.h"
#include "IMesh.h"
#include "isnwArray.h"
#include "MeshBuffer.h"

namespace ISNW
{
namespace scene
{
	class IAnimateMesh : public IMesh
	{
	public:
		virtual ~IAnimateMesh(){}

	public:
		virtual u32 getframenum() const = 0;

		virtual s32 getmeshbuffercount() const {return 0;}

		virtual const IMeshBuffer* getmeshbuffer(s32 idx) const {return 0;}

		virtual IMeshBuffer* getmeshbuffer(s32 idx) {return 0;}

		virtual const core::array<MeshBuffer*>& getallbuffer() const {return core::array<MeshBuffer*>();}

		virtual core::array<MeshBuffer*>& getallbuffer() {return core::array<MeshBuffer*>();}

		virtual const core::aabbox3df getboundbox() const{return core::aabbox3df();}

		virtual const core::aabbox3df setboundbox(const core::aabbox3d<f32>& box){return core::aabbox3df();}

		virtual void animate(u32 time) = 0;
	};
} // end namespace scene
} // end namespace ISNW
#endif